package com.fmy.jurisdiction.modular.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fmy.jurisdiction.modular.model.AdminUser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author Mr.fmy
 * @since 2019-09-16
 */
public interface IAdminUserService extends IService<AdminUser> {

    boolean addAdmin();

    /**
     * 获取手机号 count
     */
    int getPhoneCount(String phone);

    /**
     * 获取登录名 count
     */
    int getLoginCount(String userLogin);

    boolean addUser(AdminUser user);

    String getRoles(Integer userId);

    /**
     * 分配角色
     */
    boolean allocationRole(Integer userId, List<Integer> roleIds, Integer optionUser, Integer optionDeptId);

    /**
     * 删除用户
     * <p>
     * 只可删除子部门用户
     * </p>
     */
    boolean delUser(Integer userId, Integer optionUser, Integer optionDeptId);

    /**
     * 分页 多条件 查询用户
     *
     * @param cudeptId 当前登录人部门ID 唯一绝对限制条件
     */
    IPage<Map<String, Object>> getUserPage(Integer cudeptId, String userName, Integer role,
                                           Integer deptId, String phone,boolean delFlag,
                                           Integer page, Integer limit);

    /**
     * 停用/启用用户
     */
    boolean mofidyEnable(boolean enable, Integer userId, Integer optionUser, Integer optionDeptId);

    /**
     * 重置密码
     */
    String resetPwd(Integer userId, Integer optionUser, Integer optionDeptId);
}
